package com.bgs.travelapp.MyCollection.service.Impl;

import com.bgs.travelapp.MyCollection.entity.CollectionTypeEntity;
import com.bgs.travelapp.MyCollection.mapper.CollectionTypeMapper;
import com.bgs.travelapp.MyCollection.service.CollectionTypeService;
import com.bgs.travelapp.page.MyPageHelper;
import com.bgs.travelapp.page.PageRequest;
import com.bgs.travelapp.page.PageResult;
import org.springframework.stereotype.Service;
import tk.mybatis.mapper.entity.Example;

import javax.annotation.Resource;
import java.util.List;

/**
 * 收藏类型 后端收藏类型管理
 * 前端---我的收藏标签页展示
 * gpd 2022-08-10 15点12分
 */
@Service
public class CollectionTypeServiceImpl implements CollectionTypeService {

    @Resource
    CollectionTypeMapper collectionTypeMapper;

    /**
     * 查询收藏景区类型 （前端展示---我的收藏）
     * gpd 2022-08-10 11点13分
     * @return
     */
    @Override
    public List<CollectionTypeEntity> getCollectionTypeName() {
        CollectionTypeEntity collectionTypeEntity = new CollectionTypeEntity();
        collectionTypeEntity.setDelFlag(0);
        return collectionTypeMapper.select(collectionTypeEntity);
    }

    /**
     * 分页查询收藏类型+模糊查（收藏类型名称）
     * 后端管理---收藏类型管理
     * gpd 2022-08-10 15点57分
     * @param pageRequest
     * @param collectionName
     * @return
     */
    @Override
    public PageResult getCollectionTypeByPage(PageRequest pageRequest, String collectionName) {
        MyPageHelper.startPage(pageRequest);
        Example example = new Example(CollectionTypeEntity.class);
        example.createCriteria().andEqualTo("delFlag",0).andLike("collectionName","%"+collectionName+"%");
        PageResult pageResult = MyPageHelper.pageInfo(collectionTypeMapper.selectByExample(example));
        return pageResult;
    }

    /**
     * 新增收藏类型
     * 后端展示---收藏类型管理
     * gpd 2022-08-10 16点06分
     * @param collectionTypeEntity
     * @return
     */
    @Override
    public int saveCollectionType(CollectionTypeEntity collectionTypeEntity) {
        collectionTypeEntity.setDelFlag(0);
        return collectionTypeMapper.insertSelective(collectionTypeEntity);
    }

    /**
     * 修改收藏类型
     * 后端展示---收藏类型管理
     * gpd 2022-08-10 16点08分
     * @param collectionTypeEntity
     * @return
     */
    @Override
    public int updateCollectionType(CollectionTypeEntity collectionTypeEntity) {
        return collectionTypeMapper.updateByPrimaryKeySelective(collectionTypeEntity);
    }

    /**
     * 删除收藏类型
     * 后端展示---收藏类型管理
     * gpd 2022-08-10 16点10分
     * @param id
     * @return
     */
    @Override
    public int collectionTypeDelete(Integer id) {
        CollectionTypeEntity collectionTypeEntity = new CollectionTypeEntity();
        collectionTypeEntity.setId(id);
        collectionTypeEntity.setDelFlag(1);
        return collectionTypeMapper.updateByPrimaryKeySelective(collectionTypeEntity);
    }

    /**
     * 查询收藏类型名称是否重复录入
     * 后端管理---收藏类型展示
     * gpd 2022-08-10 16点13分
     * @param collectionName
     * @return
     */
    @Override
    public List<CollectionTypeEntity> selectCollectionTypeName(String collectionName) {
        CollectionTypeEntity collectionTypeEntity = new CollectionTypeEntity();
        collectionTypeEntity.setCollectionName(collectionName);
        return collectionTypeMapper.select(collectionTypeEntity);
    }

}
